버블 정렬

버블 정렬은 가장 큰 원소를 바깥쪽으로 밀어내는 방식으로 정렬하는 방식이다. 처음 원소부터 자신의 다음 원소와 비교하여 더 큰 숫자를 비교하며 더 큰 숫자를 교환하여 뒤로 밀어내는 방식으로 정렬을 한다.

위의 그림을 보면 첫번째 원소 9와 6을 보고 9가 더 크므로 9를 뒤로 밀어내고 그 다음으로 넘어가 9와 2를 비교해 9가 더크니 위치를 다시 바꾼다. 이와 같은 과정을 반복해 나가면 가장 큰 숫자가 가장 뒤로 위치하게 되고 다음번에 수행할 때는 그 다음 큰 숫자가 오게 되므로 마지막 전에 위치 시킨다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
#include<cstdio>
#include<cstdlib>
#include<ctime>


void BubbleSort(int* arr,int size)
{
for (int i = 1; i < size; i++)
{
for (int j = 0; j < size - i; j++)
{
if (arr[j] > arr[j + 1])
{
int temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
}


void main()
{
srand((unsigned int)time(NULL));

int arr[10];
for (int i = 0; i < 10; i++)
arr[i] = rand()%1000;
BubbleSort(arr, 10);

for (int i = 0; i < 10; i++)
printf("%d ", arr[i]);
}
공유하기